1. Field of the Invention
The present invention relates to a distributed processing system, and particularly to a distributed processing system which employs at least one common storage unit being shared by a plurality of computers.
2. Description of the Related Art
The UNIX operating system supports distributed processing environments where a plurality of computers execute related application programs in a distributed manner while sharing necessary computing resources. In such a distributed processing system, the consistency and integrity of data objects being processed should always be ensured throughout the system. For this reason, it is not desired that the system contains two or more instances of the same data file. This requirement justifies the computers distributed in a system to share a common storage device that stores unique data objects in a centralized way. To satisfy the demands in distributed processing environments, several types of shared file systems have been developed. Such shared file systems employ a single storage device or multiple storage devices divided into physical or logical volumes. In this description, those shared volumes will be referred to hereafter as the “shared storage unit.”
In designing such a shared file system for multi-user environments, it is necessary to incorporate an access control mechanism into the system design to prevent a particular group of users from occupying the space of the shared storage unit. To this end, most systems implement the concept of storage quota limits. The storage quota refers to a preallocated amount of storage space authorized to each user by the system administrator, which enables the shared file system to be controlled so that each user will not store excessive amounts of files. It is also possible to assign a storage quota to a group of users, rather than individual users, depending on the requirements of organizational units in a company.
The ideal shared file system mentioned above, however, has not been realized yet. Conventional implementations take a client-server model, in which a plurality of client computers share a common storage device through the intermediary service of a server computer. The next section will discuss the issue of how the storage quotas of users or user groups are controlled in such conventional client-server-based systems.
FIG. 7 is a block diagram of a conventional client-server system. Although only three computers 10 to 12 are shown, this system is constructed with many computers interconnected by a communication link 13. The computer 10 is coupled to a storage unit 14, in which a file system 14a is constructed. To share this file system 14a with other computers, the computer 10 employs a server subsystem 10a which serves remote client subsystems 11a and 12a in the other computers 11 and 12.
Suppose here that a user is operating the computer 11 in an attempt to store a certain data file to the remote shared file system 14a, issuing a write request to the client subsystem 11a. In response to this request, the client subsystem 11a sends the data file to the server subsystem 10a over the communication link 13. The server subsystem 10a compares the size of the received data file with the remaining capacity of the user's storage quota. If there is enough free quota, the server subsystem 10a supplies the data file to the shared file system 14a for storage.
In the above way of file system sharing, the client subsystems 11a and 12a have to send data files to the server subsystem 10a over the communication link 13, upon receipt of a request from a user. This approach, however, has its potential performance bottleneck in the limited throughput of the server subsystem 10a, as well as in the limited bandwidth of the communication link 13. Further, simultaneous data write requests from multiple users of the client computers 11 and 12 would contend for the data processing in the server computer 10, which is another contributing factor to the performance degradation.
To solve the above problems, and to provide a higher system throughput, an improved data management system is disclosed in the Unexamined Japanese Patent Publication No. 2000-322306 (Application Filing No. 11-143502). According to this proposed system, the clients are allowed to manage the allocation of shared storage for themselves, on behalf of the server, thus eliminating the need for the server and clients to send messages back and forth to check the availability of free storage blocks. More specifically, each client receives a certain amount of authorized “reserve space” from the server, which can be used at their own discretion, independently of the server's administration. Accordingly, the clients can make direct and quick access to the shared storage unit, without getting permissions from the server.
FIG. 8 shows a typical configuration of the shared storage system outlined above. In this example system, a plurality of computers 20 to 22 on a common communication link 23 are allowed to make direct access to a shared file system 25a in a shared storage unit 25 through another communication link 24. One computer 20 provides administrative services for the shared file system 25a by running a shared file management subsystem 20a thereon, while the other computers 21 and 22 have their respective shared file access subsystems 21a and 22a to use the shared file system 25a. 
Consider here that the user of the computer 21 attempts to store a certain data file to the remote shared file system 25a, issuing a write request to the shared file access subsystem 21a. In response to the write request, the shared file access subsystem 21a examines the size of the data file to be written. If the data file fits the user's reserve area, the shared file access subsystem 21a allocates an appropriate part of the reserve area for the data file and directly writes it to shared storage unit 25.
It should be noted here that the storage quotas are assigned to individual users, not to the computers that they are using. In the above-discussed case, the same user may operate another computer 22, or even both computers 21 and 22 simultaneously, to use his/her quota in the shared file system 25a. Therefore, the storage occupancy of each user should be checked or controlled always on a total usage basis, and to this end, the shared file management subsystem 20a has to serve as a sole manager of user quotas, as in the conventional client-server model.
While the above-described quota control method is simple and easy to implement, the shared file access subsystem 21a has to receive access permission from the shared file management subsystem 20a, every time the user of the computer 21 attempts to write data to the shared file system 25a. This means that the performance of write access would be determined ultimately by the combined performance of the computer 20 and shared file management subsystem 20a and the bandwidth of the communication link 23. This performance limitation in the system of FIG. 8 may not be as serious as that in the system of FIG. 7, because the former system does not require a client to transmit data files to the server. However, the interactions between the shared file access subsystems and shared file management subsystem over the communication link 23 are considered to be a non-negligible overhead in the shared file access. This overhead will degrade the performance of the system disclosed in the aforementioned patent publication No. 2000-322306.
Today, the above issues in the conventional processing systems take on greater importance because of the emergence of large-scale distributed processing systems containing hundreds or thousands of computers. Also, the ever-growing Internet access services need high-performance file systems so as to allow a large number of subscribers to use shared storage units. The conventional distributed processing systems, however, cannot satisfy the requirements of users because of the lack of high-speed shared file access capabilities.